Digital communication makes use of various data transmission methods that convert information - such as voice or video signal - into bits of digital message, and transmit the bits of information after conversion.
The length of the transmitted message is commonly not fixed.
Some solutions consist then in adding to the length information to the transmitted data. However, in some applications, the data rate is low so that adding information in the amount of data to be transmitted should be avoided.
An alternative is to use some error correcting codes, which are transmitted in accompanying the message bits, to determine the length information at recipient side.
In UMTS, WCDMA, and some other 3G mobile telephony systems, cyclic redundancy check (CRC) bits affixed to the message bits have been widely applied to detect the length information of a received message block in certain situations. A mechanism achieving this result is the Blind Transport Format Detection (BTFD).
FIG. 1 illustrates the context where BTFD mechanism may be used. An emitter 100 comprises a CRC encoder 101. This encoder 101 takes as input a message of k bits, and adds x bits of CRC code (12 or 16 bits in most 3G test cases). These k+x bits are then processed by a convolution encoder 102 that generates encoded data of k+x+m bits, where m is a number of zeros padded after CRC-encoded message block to terminate the trellis of convolutional codes.
The encoded data are then modulated by a modulator 103 and transmitted to a channel 120. This channel being a radio channel, the transmitted signal is perturbed by noise, so that the receiver 110 receives the modulated frame together with noise.
The receiver includes a demodulator 111 to demodulate the received frame and generate a corresponding demodulated frame. The receiver 110 further includes a decoder 112 so that the demodulated frame can be decoded and the unknown message length k can be determined accordingly.
The receiver knows only about a set of candidates for the transport format (i.e. length k of the transmitted messages) from layer-3 negotiation, and the problem it faces is to determine the most probable transport format for the received message.
In other words, turning to the FIG. 2 showing a received message, it consists in determining where ends the message made of the Data and CRC fields: four candidates are depicted (N=1, 2, 3, 4) and the receiver should determine that the end bit position
Several algorithms have been proposed so far for the demodulator 111 to determine the right length of the transmitted message so as to demodulate it.
The BTFD solution has been the one standardized by the 3GPP and ETSI organizations. The TS125.212 document, entitled “Multiplexing and channel coding (FDD)” describes such an approach and a possible algorithm. This solution is illustrated by the FIG. 3.
This method is based on a Viterbi decoder. The correct trellis path of the Viterbi decoder ends at the zero state at the correct end bit position N.
The BTFD approach traces back the surviving trellis path ending at the zero state (hypothetical trellis path) at each possible end bit position to recover the data sequence. For each recovered data sequence, error detection is performed by checking the CRC and if there is no error the recovered sequence is declared to be correct.
A variable S(N) is defined as:
                              S          ⁡                      (            N            )                          =                              -            10                    ×                      log            ⁡                          (                                                                                          a                      0                                        ⁡                                          (                      N                      )                                                        -                                                            a                      min                                        ⁡                                          (                      N                      )                                                                                                                                  a                      max                                        ⁡                                          (                      N                      )                                                        -                                                            a                      min                                        ⁡                                          (                      N                      )                                                                                  )                                                          (        1        )            
Where amax(N) and amin(N) are the maximum and minimum path-metric values among all survivors at end bit position N, and a0(N) is the path-metric value at zero state.
In a noiseless transmission, S(N) corresponding to the true (i.e. as transmitted) message length k always equal zero. However, in a noisy transmission, it is unlikely that S(N) will equal zero for the true message length k. Therefore, the test consists in comparing this variable S(N) to a predetermined threshold Δ.
This threshold Δ is called “path selection threshold” and it is a design parameter.
Coming back to the FIG. 3, the algorithm starts with a initialization step 301 consisting in setting the end bit position N to 1, and two work variables Sbest=Δ and nend=0. The variable nend represents the best end bit position found so far. The variable Sbest represents the corresponding best variable S(N) as provided by the Viterbi decoder.
The step 302 consists in determining the variable S(N) for the current value of N, according to the equation (1) given above.
This calculated variable S(N) is then compared with the threshold Δ at step 303.
If the variable is greater than the threshold, the flow proceeds to step 308 to determine whether any additional length candidate exists. For doing this, it suffices to check if the current value of N is the maximum number in the set of candidates.
If no, i.e. if there exists at least another candidate, the value of N is increased by 1 in step 309 and the process loops to step 302. Otherwise, the flow proceeds to step 310 to determine whether the best solution nend is equal to zero.
If nend=0, the decoding process ends at step 311 and the received message is declared to be in error.
If nend>0, then the value of nend is considered to be the best candidate for the real length of the received message (step 312).
The other branch of the process starting at step 303 is triggered when S(N)≦Δ. Then, at a step 304, the Viterbi decoder traces back the received message so as to output a block of bits according to the current value of N.
This block of bits is then processed by a CRC checker 305. If the CRC is not correct, the flow proceeds to the step 308 already explained. If the CRC is correct, then it means that a legitimate message has been found. However, the variable S(N) is to be compared with the currently best value Sbest., at the step 306, in order to determine if this legitimate message is better than the previously-found one(s).
If S(N)≦Sbest, the flow proceeds also to step 308.
In the situation where S(N)>Sbest, then a step 307 consists in setting new values to the work variables Sbest and Nend, so as: Sbest=S(N) and Nend=N, and the flow also proceed to step 308, for going on with following candidates or ending the process.
Nonetheless, as any process based on statistical analysis (here, the Viterbi decoding algorithm), the receiver makes errors, with a rate depending notably on the noise in the transmission channel. The above-described approach aims at keeping these decoding errors as low as possible, but there is still a need to improve the situation by proposing a BTFD process optimizing the decoding performances.